/*
	NounEnhancementBeam.h
	(c)2008 Palestar Inc, Jeff Everett
*/



#ifndef NOUNENHANCEMENTBEAM_H
#define NOUNENHANCEMENTBEAM_H

#include "NounEnhancement.h"

// Minor Beam ---------------------------------------------------------------//

class DLL NounEnhancement_MinorBeamAccelerator : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_MinorBeamAccelerator();

	CharString GetName() const { return "Minor Beam Accelerator";}
	ApplyType applyType() const { return AT_ATTACH;}

};

class DLL NounEnhancement_MinorBeamCooler : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_MinorBeamCooler();

	CharString GetName() const { return "Minor Beam Cooler";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_MinorBeamMultiplexer : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_MinorBeamMultiplexer();

	CharString GetName() const { return "Minor Beam Multiplexer";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_MinorBeamCondenser : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_MinorBeamCondenser();

	CharString GetName() const { return "Minor Beam Condenser";}
	ApplyType applyType() const { return AT_ATTACH;}
};


// Limited Beam ---------------------------------------------------------------//

class DLL NounEnhancement_LimitedBeamAccelerator : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_LimitedBeamAccelerator();

	CharString GetName() const { return "Limited Beam Accelerator";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_LimitedBeamCooler : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_LimitedBeamCooler();

	CharString GetName() const { return "Limited Beam Cooler";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_LimitedBeamMultiplexer : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_LimitedBeamMultiplexer();

	CharString GetName() const { return "Limited Beam Multiplexer";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_LimitedBeamCondenser : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_LimitedBeamCondenser();

	CharString GetName() const { return "Limited Beam Condenser";}
	ApplyType applyType() const { return AT_ATTACH;}
};


// Standard Beam ---------------------------------------------------------------//

class DLL NounEnhancement_StandardBeamAccelerator : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_StandardBeamAccelerator();

	CharString GetName() const { return "Standard Beam Accelerator";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_StandardBeamCooler : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_StandardBeamCooler();

	CharString GetName() const { return "Standard Beam Cooler";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_StandardBeamMultiplexer : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_StandardBeamMultiplexer();

	CharString GetName() const { return "Standard Beam Multiplexer";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_StandardBeamCondenser : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_StandardBeamCondenser();

	CharString GetName() const { return "Standard Beam Condenser";}
	ApplyType applyType() const { return AT_ATTACH;}
};

// Improved Beam ---------------------------------------------------------------//

class DLL NounEnhancement_ImprovedBeamAccelerator : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_ImprovedBeamAccelerator();

	CharString GetName() const { return "Improved Beam Accelerator";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_ImprovedBeamCooler : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_ImprovedBeamCooler();

	CharString GetName() const { return "Improved Beam Cooler";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_ImprovedBeamMultiplexer : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_ImprovedBeamMultiplexer();

	CharString GetName() const { return "Improved Beam Multiplexer";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_ImprovedBeamCondenser : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_ImprovedBeamCondenser();

	CharString GetName() const { return "Improved Beam Condenser";}
	ApplyType applyType() const { return AT_ATTACH;}
};

// Enhanced Beam ---------------------------------------------------------------//

class DLL NounEnhancement_EnhancedBeamAccelerator : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_EnhancedBeamAccelerator();

	CharString GetName() const { return "Enhanced Beam Accelerator";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_EnhancedBeamCooler : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_EnhancedBeamCooler();

	CharString GetName() const { return "Enhanced Beam Cooler";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_EnhancedBeamMultiplexer : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_EnhancedBeamMultiplexer();

	CharString GetName() const { return "Enhanced Beam Multiplexer";}
	ApplyType applyType() const { return AT_ATTACH;}
};

class DLL NounEnhancement_EnhancedBeamCondenser : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_EnhancedBeamCondenser();

	CharString GetName() const { return "Enhanced Beam Condenser";}
	ApplyType applyType() const { return AT_ATTACH;}
};

// Advanced Beam ---------------------------------------------------------------//

class DLL NounEnhancement_AdvancedBeamAccelerator : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_AdvancedBeamAccelerator();

	CharString GetName() const { return "Advanced Beam Accelerator";}
	ApplyType applyType() const { return AT_ATTACH;}
	Rarity rarity()  const {return RARITY_RARE;}
};

class DLL NounEnhancement_AdvancedBeamCooler : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_AdvancedBeamCooler();

	CharString GetName() const { return "Advanced Beam Cooler";}
	ApplyType applyType() const { return AT_ATTACH;}
	Rarity rarity()  const {return RARITY_RARE;}
};

class DLL NounEnhancement_AdvancedBeamMultiplexer : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_AdvancedBeamMultiplexer();

	CharString GetName() const { return "Advanced Beam Multiplexer";}
	ApplyType applyType() const { return AT_ATTACH;}
	Rarity rarity()  const {return RARITY_RARE;}
};

class DLL NounEnhancement_AdvancedBeamCondenser : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();();

	NounEnhancement_AdvancedBeamCondenser();

	CharString GetName() const { return "Advanced Beam Condenser";}
	ApplyType applyType() const { return AT_ATTACH;}
	Rarity rarity()  const {return RARITY_RARE;}
};



#endif
